/**************************************************************************************
*
*	Copyright (C) 2009 - 2012 Brent Andrew O. Chua - See LICENSE.txt for more info.
*		
*	Filename	-	RenderEntryDepthStencilState.h
*
*	Description -	Render entry set DepthStencilState. Sets then binds the state.
*
*	Comments	-	
*
*	Modification History:
*			Name			   Date					Description
*			MrCodeSushi	-	01/04/2013	-	Creation of this file
**************************************************************************************/
#ifndef _PSX_RENDER_ENTRY_DEPTH_STENCIL_STATE_H_
#define _PSX_RENDER_ENTRY_DEPTH_STENCIL_STATE_H_

#include "PulseSTD.h"
#include "RenderEntry.h"
#include "DepthStencilState.h"

namespace Pulse
{
	class RenderEntryDepthStencilState : public RenderEntry
	{
	public:

		RenderEntryDepthStencilState( DepthStencilState *pState = PSX_NULL );

		virtual ~RenderEntryDepthStencilState( void );

		void SetDepthStencilState( DepthStencilState *pState ) { m_pState = pState; }

		//virtual void PreExecute( GraphicsPipeline *pPipeline ) { }

		virtual void Execute( GraphicsPipeline *pPipeline );

		//virtual void PostExecute( GraphicsPipeline *pPipeline ) { }

	private:

		DepthStencilState *m_pState;

	};
}

#endif /* _PSX_RENDER_ENTRY_DEPTH_STENCIL_STATE_H_ */
